binary search implementation math

Please click on ads to support us..

Python Code:

def Solve(ele):
    ans=0
    for i in range(3):
        low,high=0,int(1e9)
        while low<high:
            mid=(low+high+1)>>1
            if mid*(mid+i)>ele:
                high=mid-1
            else:low=mid
        ans+=low
    return ans
def solve():
    l,r=map(int,input().split())
    print(Solve(r)-Solve(l-1))
for _ in range(int(input())):solve()

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	ll a,b;
	cin>>a>>b;
	ll l=sqrt(1.0L*a),r=sqrt(1.0L*b);
	ll ans=(r-l)*3+(b-r*r)/r-(a-l*l)/l+((a-l*l)%l==0);
	cout<<ans<<endl;
	}
}


Comments

Submit
0 Comments
More Questions

230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array
136A - Presents
1450A - Avoid Trygub
327A - Flipping Game
411A - Password Check
1520C - Not Adjacent Matrix
1538B - Friends and Candies
580A - Kefa and First Steps
1038B - Non-Coprime Partition
43A - Football
50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns